Maven হল একটি বিল্ড এবং প্রোজেক্ট ম্যানেজমেন্ট টুল যা সাধারণত Java প্রোজেক্টের জন্য ব্যবহৃত হয়। এটি বিল্ড লাইফসাইকেল ভিত্তিক কাজ করে এবং বিভিন্ন স্টেপ বা ফেজ অনুসরণ করে। প্রতিটি ফেজে একটি নির্দিষ্ট কাজ সম্পাদিত হয়, যেমন কোড কম্পাইল করা, টেস্ট করা, প্যাকেজ তৈরি করা, এবং ফাইল ইনস্টল করা।
Maven এ ৩টি প্রধান লাইফসাইকেল রয়েছে:
- Default Life Cycle: কোড বিল্ড করার জন্য প্রধান লাইফসাইকেল।
- Clean Life Cycle: পূর্বের বিল্ড থেকে সমস্ত অস্থায়ী ফাইল এবং আউটপুট মুছে ফেলা।
- Site Life Cycle: প্রোজেক্টের জন্য ডকুমেন্টেশন তৈরি করা।
এখানে আমরা মূলত Default Life Cycle এর ছয়টি ফেজ (Validate, Compile, Test, Package, Install, Deploy) সম্পর্কে বিস্তারিত আলোচনা করব।
১. Validate ফেজ
Validate ফেজ হলো Maven লাইফসাইকেলের প্রথম ফেজ, যেখানে প্রোজেক্টের কনফিগারেশন চেক করা হয়। এই ফেজে প্রোজেক্টের পম (POM) ফাইল এবং অন্যান্য কনফিগারেশন ফাইলের সঠিকতা যাচাই করা হয়। এটি নিশ্চিত করে যে সব প্রয়োজনীয় ফাইল, ডিপেনডেন্সি এবং কনফিগারেশন সঠিকভাবে উপস্থিত আছে।
কাজ:
- পম ফাইলের কনফিগারেশন যাচাই করা।
- প্রোজেক্টের কনফিগারেশন এবং ডিপেনডেন্সির অবস্থা পরীক্ষা করা।
উদাহরণ:
mvn validate
২. Compile ফেজ
Compile ফেজে, Maven কোড কম্পাইল করে। এই ফেজে সমস্ত সোর্স কোড (যেমন, .java ফাইল) কম্পাইল করা হয় এবং তাদের বাইনারি .class ফাইল তৈরি করা হয়। এতে সমস্ত সোর্স ফাইলকে একটি নির্দিষ্ট ডিরেক্টরিতে কম্পাইল করা হয় যাতে পরবর্তী ফেজগুলিতে ব্যবহার করা যায়।
কাজ:
- সমস্ত সোর্স কোড কম্পাইল করা।
- কম্পাইল করা কোডের বাইনারি ফাইল
.classতৈরি করা।
উদাহরণ:
mvn compile
৩. Test ফেজ
Test ফেজে, Maven টেস্ট রান করে। এই ফেজে কম্পাইল করা কোডের উপর একক টেস্ট (unit tests) এবং অন্যান্য টেস্ট রান করা হয়। সাধারণত JUnit বা TestNG ব্যবহার করে টেস্ট ফ্রেমওয়ার্কগুলির মাধ্যমে এই টেস্টগুলি চালানো হয়।
কাজ:
- টেস্ট কোড রান করা (যেমন, JUnit বা TestNG টেস্ট)।
- কোডে কোনো ত্রুটি থাকলে তা শনাক্ত করা।
উদাহরণ:
mvn test
৪. Package ফেজ
Package ফেজে, Maven কোডকে একটি বিতরণযোগ্য ফাইল (যেমন .jar, .war, .ear) এ প্যাকেজ করে। এই ফেজে সম্পূর্ণ কোড প্যাকেজ করা হয় এবং প্রোজেক্টের জন্য নির্ধারিত আউটপুট ফাইল তৈরি হয়।
কাজ:
- কম্পাইল করা কোড এবং পরীক্ষিত কোডকে একটি জিপ ফাইল,
.jar,.warবা.earফরম্যাটে প্যাকেজ করা। - এটি বিতরণযোগ্য আর্কাইভ তৈরি করে, যেটি অন্যান্য পরিবেশে ডিপ্লয় করা যেতে পারে।
উদাহরণ:
mvn package
৫. Install ফেজ
Install ফেজে, প্যাকেজ করা আর্কাইভটি আপনার লোকাল মেশিনের Maven রিপোজিটরিতে ইনস্টল করা হয়। এটি মূলত আপনার প্রোজেক্টের তৈরি করা .jar, .war বা .ear ফাইলগুলি লোকাল রিপোজিটরিতে সংরক্ষণ করে যাতে পরবর্তী সময়ে এটি অন্য প্রোজেক্টে ব্যবহার করা যায়।
কাজ:
- প্যাকেজ করা ফাইলটি লোকাল Maven রিপোজিটরিতে ইনস্টল করা।
- ডিপেনডেন্সি হিসাবে অন্য প্রোজেক্টে এটি ব্যবহৃত হতে পারে।
উদাহরণ:
mvn install
৬. Deploy ফেজ
Deploy ফেজে, প্যাকেজ করা ফাইলটি রিমোট Maven রিপোজিটরিতে (যেমন, Nexus বা Artifactory) ডিপ্লয় করা হয়। এই ফেজে প্রোজেক্টের .jar, .war, বা .ear ফাইলটি কেন্দ্রীয় রিপোজিটরিতে আপলোড করা হয়, যাতে এটি সবার জন্য উপলব্ধ হয় এবং অন্যান্য টিম বা প্রোজেক্টে ব্যবহার করা যায়।
কাজ:
- প্যাকেজ করা ফাইলটি রিমোট রিপোজিটরিতে আপলোড করা।
- এটি কেন্দ্রীয় রিপোজিটরিতে সংরক্ষিত থাকে এবং অন্যান্য টিম বা প্রোজেক্টের জন্য ব্যবহারযোগ্য হয়।
উদাহরণ:
mvn deploy
সারাংশ
| ফেজ | কাজ | উদাহরণ |
|---|---|---|
| Validate | পম ফাইল এবং কনফিগারেশন যাচাই করা | mvn validate |
| Compile | সোর্স কোড কম্পাইল করা এবং .class ফাইল তৈরি করা | mvn compile |
| Test | কোডে ইউনিট টেস্ট চালানো | mvn test |
| Package | কোড প্যাকেজ করা (যেমন .jar, .war, .ear) | mvn package |
| Install | প্যাকেজ করা ফাইল লোকাল Maven রিপোজিটরিতে ইনস্টল করা | mvn install |
| Deploy | রিমোট Maven রিপোজিটরিতে ফাইল ডিপ্লয় করা | mvn deploy |
উপসংহার
Maven এর বিল্ড লাইফসাইকেল বিভিন্ন ফেজে বিভক্ত, প্রতিটি ফেজ একটি নির্দিষ্ট কাজ সম্পাদন করে, যেমন সোর্স কোড কম্পাইল করা, টেস্ট করা, প্যাকেজ করা এবং ডিপ্লয় করা। প্রতিটি ফেজের কাজ পৃথক হলেও একে অপরের সাথে সন্নিবেশিত থাকে, এবং Maven এ এই ফেজগুলির মাধ্যমে আপনার প্রোজেক্টটি সিস্টেমেটিকভাবে বিল্ড এবং ডিপ্লয় করা সম্ভব।
Read more